﻿using System.Collections.Generic;

namespace Cms.Domain.RepositoryInterfaces
{
    public interface ISystemRepository
    {
        IList<Plugin> GetPlugins();

        IList<PluginTemplate> GetPluginTemplates(int siteID);

        void DeletePlugin(int id);

        void SavePlugin(Plugin plugin);

        Plugin GetPlugin(int id);

        PluginTemplate GetPluginTemplate(int id);

        IList<DashboardGadget> GetDashboardGadgets();

        void DeleteDashboardGadget(int id);

        void SaveDashboardGadget(DashboardGadget gadget);

        DashboardGadget GetDashboardGadget(int id);

        CustomAdminPage GetCustomAdminPage(int id);

        CustomAdminPage GetCustomAdminPageByFilename(string filename);

        void SaveCustomAdminPage(CustomAdminPage customAdminPage);

        IList<CustomAdminPage> GetCustomAdminPages(int siteId);

        void DeleteCustomAdminPage(int id);

        bool CustomAdminPageFilenameExists(int customAdminPageId, string filename);

        void SaveFieldType(FieldType fieldType);
    }
}